ccR.Add_Rotation(
	3, -- Player Specialization
	"CC_WindWalker_Solo", -- Function name
	"Developed early WoD, Not recommended.", -- Description
	"CC_WindWalker_Talents", -- Talents button frame
	"CC_WindWalker_Abilities", -- Abilities button frame
	"CC_WindWalker_Features", -- Features button frame
	"CC_WindWalker_Setup" -- Setup button frame
)
function CC_WindWalker_Solo()
	if ccR.Player.Is.ChannelingSpell(FISTS_OF_FURY) or ccR.Player.Is.ChannelingSpell(SPINNING_CRANE_KICK) then return end

	ccR.Monk.Features.Legacy_of_the_White_Tiger() -- Buff if missing

	if ccR.Target.Exists() then
		-- In Combat
		if ccR.Player.Is.InCombat() then
			ccR.Start_Attack()
			ccR.Monk.Talent.Tigers_Lust()
			ccR.Monk.Talent.Zen_Sphere(100, 4)
			ccR.Monk.Talent.Chi_Brew(2)
			ccR.Monk.Talent.Ring_of_Peace(4, "player")
			ccR.Monk.Talent.Charging_Ox_Wave(15, 35)
			ccR.Monk.Talent.Leg_Sweep(4)
			ccR.Monk.Talent.Dampen_Harm(45)
			ccR.Monk.Talent.Diffuse_Magic(45)
			ccR.Monk.Talent.Invoke_Xuen_the_White_Tiger(3)
			ccR.Monk.Features.Fortifying_Brew(40)
			ccR.Monk.Features.Touch_of_Karma(35)
			ccR.Monk.Features.Spear_Hand_Strike(1)
			ccR.Monk.Features.Detox()

			-- Storm, Earth and Fire
			if # ccR_Enemies_In_Combat > 1
			and ccR.Player.BuffStacks(STORM_EARTH_AND_FIRE) < 2
			then
				for x = 1, # ccR_Enemies do
					local vUnit = ccR_Enemies[x]
					if ccR.Unit.Exists(vUnit)
					and ccR.Unit.IsAlive(vUnit)
					and ccR.Unit.IsAttackable("player", vUnit)
					and (ccR.Unit.IsTappedByPlayer(vUnit) or (ccR.Unit.Is.EnemyPlayer(vUnit) and ccR.Unit.TargetName(vUnit) == ccR.Player.Name()))
					and ccR.Spell.CanAttack(STORM_EARTH_AND_FIRE, vUnit)
					and ccR.Target.GUID() ~= ccR.Unit.GUID(vUnit)
					and not ccR.Unit.Has.MyDebuff(vUnit, SEF)
					then
						ccR.Cast.Attack(STORM_EARTH_AND_FIRE, vUnit)
					end
				end
			end
			-- Remove SEF if our target has it.
			if ccR.Target.Has.MyDebuff(SEF) and ccR.Player.Has.Buff(STORM_EARTH_AND_FIRE) then ccR.RemoveBuff(STORM_EARTH_AND_FIRE) end
			--------------------
			-- Energizing Brew
			if ccR.Spell.Is.Ready(ENERGIZING_BREW) and ccR.Player.Energy() <= 40 then ccR.Cast.Spell(ENERGIZING_BREW)
			-- Tiger Eye Brew
			elseif ccR.Spell.IsReady(TIGEREYE_BREW) and ccR.Player.BuffStacks(TIGEREYE_BREW_BUFF) >= 10 then ccR.Cast.Spell(TIGEREYE_BREW)
			end
			-- Touch of Death
			ccR.Monk.Features.Touch_of_Death()
		end
		-- Priority to use these before Chi Builder
		if ccR.Player.IsFacing("target") then
			if ccR.Spell.CanAttack(TIGER_PALM) and ccR.Player.Has.Buff(COMBO_BREAKER_TIGER_PALM) then ccR.Cast.Attack(TIGER_PALM)
			elseif ccR.Spell.CanAttack(BLACKOUT_KICK) and ccR.Player.Has.Buff(COMBO_BREAKER_BLACKOUT_KICK) then ccR.Cast.Attack(BLACKOUT_KICK)
			end
		end

		-- AoE
		ccR.Monk.Talent.Rushing_Jade_Wind(2)
		ccR.Monk.Spinning_Crane_Kick(4)

		-- Chi Building
		if ccR.Player.Chi() <= 2 then
			ccR.Monk.Chi_Builder()
		else
			if ccR.Player.Is.Facing("target") then
				-- Tiger Power
				if ccR.Spell.CanAttack(TIGER_PALM) and (not ccR.Player.Has.Buff(TIGER_POWER) or ccR.Player.Buff.Duration(TIGER_POWER, "<=", 3)) then ccR.Cast.Attack(TIGER_PALM)
				-- Rising Sun Kick
				elseif ccR.Spell.CanAttack(RISING_SUN_KICK) and ccR.Player.Has.Spell(RISING_SUN_KICK) and ccR.Player.Level() >= 56 then ccR.Cast.Attack(RISING_SUN_KICK)
				-- Fists of Fury
				elseif ccR.Spell.CanAttack(FISTS_OF_FURY) and not ccR.Player.Is.Moving() then ccR.Cast.Attack(FISTS_OF_FURY)
				end
			end
			-- Chi Wave
			ccR.Monk.Talent.Chi_Wave()
			if ccR.Player.Is.Facing("target") then
				-- Chi Burst
				ccR.Monk.Talent.Chi_Burst()
				-- Blackout Kick
				if ccR.Spell.CanAttack(BLACKOUT_KICK) and ((ccR.Player.Has.Spell(RISING_SUN_KICK) and ccR.Spell.Is.OnCooldown(RISING_SUN_KICK)) or not ccR.Player.Has.Spell(RISING_SUN_KICK)) then ccR.Cast.Attack(BLACKOUT_KICK) end
			end
		end
	end
	-- cdMichaelb
	if cdFarmMode then
		if ccR.Player.Is.ChannelingSpell(CRACKLING_JADE_LIGHTNING) and ccR.Target.Is.Tapped() then SpellStopCasting() end
		for x = 1, #ccR_Enemies_Within_44 do
			local vUnit = ccR_Enemies_Within_44[x]
			if not ccR.Unit.Is.Tapped(vUnit)
			and ccR.Spell.CanAttack(CRACKLING_JADE_LIGHTNING, vUnit)
			then
				if not ccR.Player.Is.Facing(vUnit) then TargetUnit(vUnit) end
				if ccR.Player.Is.Facing(vUnit) then ccR.Cast.Attack(CRACKLING_JADE_LIGHTNING, vUnit) end
			end
		end
	end
end